最近大家應該會發生有一則新聞很紅,是關於全球的「小籠包物價指數」比較。這則新聞是從世界各地的鼎泰豐分店來看,若身上擁有10美元、則可以買多少小籠包?中央社還特別用小籠包來當作物價指數的數值展現方式,整個構圖非常可愛。
圖1: 中央社製圖的小籠包物價指數新聞。截圖自: https://www.cna.com.tw/news/afe/202408260347.aspx
結果發現,將總店設在台北的鼎泰豐,並不是最便宜的! 我們的小籠包物價竟比吉隆坡高。這讓我感到非常驚訝,因通常產品發跡地或總店所在地的價格會比其他地方便宜。
中央社編譯了Axios的新聞,在〈美網站從「小籠包指數」看物價 台北比紐約划算3倍〉這篇新聞中指出,「Axios發現,要在紐約、拉斯維加斯或倫敦吃鼎泰豐小籠包成本最高,而在台北或吉隆坡則最划算。若以同樣10美元來看,在倫敦只能買到4.3顆小籠包,拉斯維加斯4.4顆,紐約5.4顆,洛杉磯5.7顆,東京6.6顆,雪梨7.5顆,北京12.1顆,台北則達15.7顆,吉隆坡更有16.6顆。」【註1】
我也想應用上述的數值試著做圖表看看,因此我選用了seabon,並先捨棄之前喜歡用的柱狀圖,改採用氣泡圖。我打算根據城市和每 10 美元能買到的小籠包數量來決定每個圓圈的大小。這種圖表能夠直觀地展示各城市的價值差異。
我一樣昨日的寫法來建立數據,將各個城市與能購買到的小籠包數都放入資料集中,並建立data Frame。
接著我使用 sns.scatterplot() 來繪製氣泡圖。在seabon官網介紹中,此可以用來調整顏色、大小、圓圈、表現x軸與y軸的關係。【註2】因此我在size 參數根據每個城市的小籠包數量來調整氣泡的大小,並設定氣泡顏色為橘色(orange),而在 sizes 參數中,我也指定氣泡的最小和最大尺寸,分別為數值100和2000。程式碼如下:
圖2: 撰寫的程式碼。
跑跑看:
圖3: 以seabon繪製的氣泡圖結果。
看起來還不錯! 但吉隆坡的氣泡顯示位置有點快超過框線,因此我重新調整程式碼中的sizes數值,將sizes的參數改成sizes=(100, 1000)
圖4:調整過氣泡圓圈大小後的圖表。
調整後好像有比較好了。但我還是沒有想到如何將16.6此數值往下調的方式。
可能之後會有答案吧!
如果有相關修正方法,請不吝推薦給我!
【註1】有關此段中央社編譯新聞引文,請參閱: https://www.cna.com.tw/news/afe/202408260347.aspx
【註2】有關seabon官網中對於scatterplot的介紹,可參考以下網站內容: https://seaborn.pydata.org/generated/seaborn.scatterplot.html